#ifndef OPERATION_H__
#define OPERATION_H__

namespace npFactoryMethod
{
    class Operation
    {
        private: int first_num;
        private: int second_num;

        public: Operation();
        public: virtual ~Operation();
        public: Operation(const Operation& cpy);
        public: Operation& operator=(const Operation& asn);
        public: virtual Operation* clone() const;

        public: void setFirstNum(int first_num);
        public: int getFirstNum() const;
        public: void setSecondNum(int second_num);
        public: int getSecondNum() const;
        public: virtual int getResult() const = 0;
    };
}

#endif //OPERATION_H__